<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>then返回值的处理</title>
</head>
<body>
    <script>
        new Promise((resolve,reject) => {
            resolve("成功");
        }).then(
            value => {
                // 如果走的方法里面是return出去的，下面同级的then，就是对return值的处理
                //  可能一：返回一个字符串
                // return "abc";

                // 可能二：返回一个promise，下面同级的then，对promise中的reject进行处理
                // return new Promise((resolve,reject) => {
                //     reject("错误");
                // });

                // 可能三：返回的promise有then，下面同级的then，对执行完then的promise对象进行处理，走默认的成功方法
                // return new Promise((resolve,reject) => {
                //     reject("错误");
                // }).then(
                //     value => {
                //         console.log("success" + value);
                //     },
                //     reject => {
                //         console.log("error" + reject);
                //     }
                // );

                // 可能四：返回的promise有then，且then也有返回值(返回一个字符串), 对执行完then的promise对象进行处理，走默认的成功方法,把返回的字符串传到成功的方法中
                // return new Promise((resolve,reject) => {
                //     reject("错误");
                // }).then(
                //     null,
                //     reject => {
                //         return("失败了")
                //     }
                // );

                // 可能五：返回的promise有then，且then也有返回值(返回一个promise), 对执行完then的promise对象进行处理，return的promise对象中执行成功方法，下面同级的then就走成功方法，return的promise对象中执行失败方法，下面同级的then就走失败方法
                return new Promise((resolve,reject) => {
                    reject("错误");
                }).then(
                    null,
                    reject => {
                        return new Promise((resolve,reject) => {
                            reject("失败。。。。。");
                        })
                    }
                );
            }            
        ).then(
            value => {
                console.log("对 " + value);
            },
            reject => {
                console.log("错 " + reject);
            }
        )
            
    </script>
</body>
</html>